namespace Shinkansen.Core
{
    public class ShinkansenOptions
    {
        /// <summary>
        /// Initializes the <see cref="ShinkansenOptions"/> class.
        /// </summary>
        static ShinkansenOptions ()
        {
            Default = new ShinkansenOptions 
            { 
                Crunch = true, 
                Combine = true, 
                HttpCompressWith = HttpCompressionMode.GZip 
            };
        }

        /// <summary>
        /// Gets or sets a value indicating whether to crunch (minify, etc) these resources.
        /// </summary>
        /// <value><c>true</c> if crunch; otherwise, <c>false</c>.</value>
        public bool Crunch { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to combine these resources.
        /// </summary>
        /// <value><c>true</c> if combine; otherwise, <c>false</c>.</value>
        public bool Combine { get; set; }

        /// <summary>
        /// Gets or sets the HTTP compression algorithm.
        /// </summary>
        /// <value>The HTTP compress with.</value>
        public HttpCompressionMode HttpCompressWith { get; set; }

        /// <summary>
        /// Gets or sets the default options.
        /// </summary>
        /// <value>The default.</value>
        public static ShinkansenOptions Default { get; private set; }
    }
}